package com.java.enums.sample04;

public interface Food {
	void buyFood();
	//定义 enum 类型时候，如果是简单类型，那么最后一个枚举值后不用跟任何一个符号；
	enum Dessert{
		//隐式提供无参private构造方法
		//枚举常量隐式定义了一个匿名类声明，不能包含任何构造方法
		FRUIT, CAKE, GELATO
	}
	//但如果有定制方法，那么最后一个枚举值与后面代码要用分号';'隔开，不能用逗号或空格
	enum Coffee implements Food{
		BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO{
			@Override
			public void met(){
				System.out.println("CAPPUCCINO.met();");
				met2();
			}
			//该方法未重写Coffee中的任何方法，无法在Coffee的外部调用
			public void met2(){
				System.out.println("CAPPUCCINO.met2();");
			}
			@Override
			public void buyFood() {
				System.out.println("Coffee.CAPPUCCINO.buyFood()");
			}
			//枚举变量类体内的方法不能用abstract修饰。
			//public abstract void met4();
		};

		public void met(){}
		@Override
		public void buyFood() {
			System.out.println("Coffee.buyFood()");
		}
	}
}